// pages/courses/zxkc/zxkc.js
let app=getApp();
Page({

  /**
   * 页面的初始数据
   */
  data: {
    url:'',
    courses:'',
    pageNum:1,
    pageSize:5,
    pages:0,
    isLoading:false,
    mainOptions: [
      { key: 'default', label: '综合排序', active: true },
      { key: 'popularity', label: '人气', active: false },
      { key: 'rating', label: '好评率', active: false },
    ],
    priceExpanded: false,
    priceRangeExpanded: false,
    priceSortType: 'asc', // 'asc' 或 'desc'
    priceRanges: [
      { value: '0-0', label: '免费', active: false },
      { value: '0-50', label: '¥50以下', active: false },
      { value: '50-100', label: '¥50-100', active: false },
      { value: '100-500', label: '¥100-500', active: false },
      { value: '500-1000', label: '¥500-1000', active: false },
      { value: '1000-999999999', label: '¥1000以上', active: false }
    ],
    priceActive: false,
    priceRangeActive: false,
    interval:''   //价格区间
  },
// 点击顶部排序项（综合、人气、好评率）
onMainOptionTap(e) {
  const key = e.currentTarget.dataset.key;
  let mainOptions = this.data.mainOptions.map(item =>
    item.key === key ? { ...item, active: true } : { ...item, active: false }
  );
  this.setData({ 
    mainOptions,
    priceRangeExpanded: false, // 关闭价格区间
    priceExpanded: false, // 关闭价格排序
    priceActive: false,       // 重置价格激活状态
    priceRangeActive: false   // 重置价格区间激活状态
  });
  if(key=='default'){
    this.setData({
      priceSortType:null,
      interval:null,
      courses:[],
      pageNum:1
    })
    this.getCourse();

  }
},

// 点击"价格"
onPriceTap() {
  // 重置主选项的选中状态
  let mainOptions = this.data.mainOptions.map(item => ({
    ...item,
    active: false
  }));
  
  this.setData({
    mainOptions,
    priceExpanded: !this.data.priceExpanded,
    priceRangeExpanded: false,
    priceActive: true,        // 设置价格激活状态
    priceRangeActive: false   // 重置价格区间激活状态
  });
},

// 点击"价格区间"
onPriceRangeTap() {
  // 重置主选项的选中状态
  let mainOptions = this.data.mainOptions.map(item => ({
    ...item,
    active: false
  }));
  
  this.setData({
    mainOptions,
    priceRangeExpanded: !this.data.priceRangeExpanded,
    priceExpanded: false,
    priceActive: false,       // 重置价格激活状态
    priceRangeActive: true    // 设置价格区间激活状态
  });
},

// 点击价格升序/降序 → 直接触发，无需确定按钮
onPriceSortSelected(e) {
  const type = e.currentTarget.dataset.type;
  this.setData({ 
    priceSortType: type,
    priceActive: true,        // 保持价格激活状态
    priceRangeActive: false   // 重置价格区间激活状态
  });
  this.onPriceSortConfirmed(type); // 直接调用处理函数
},

onPriceSortConfirmed() {
  // console.log('价格排序选中:', type);
  // TODO: 执行价格排序逻辑，比如调用接口或本地排序
  this.setData({
    courses:[],
    pageNum:1,
    interval:null
  })
  this.getCourse();
  
},

// 点击价格区间选项 → 赋值给变量
onPriceRangeSelected(e) {
  const value = e.currentTarget.dataset.value;
  let priceRanges = this.data.priceRanges.map(item =>
    item.value === value ? { ...item, active: true } : { ...item, active: false }
  );
  this.setData({ 
    priceRanges,
    priceActive: false,       // 重置价格激活状态
    priceRangeActive: true    // 保持价格区间激活状态
  });
  this.onPriceRangeConfirmed(value); // 直接调用处理函数
},

onPriceRangeConfirmed(value) {
  console.log('价格区间选中:', value);
  this.setData({
    courses:[],
    pageNum:1,
    interval:value,
    priceSortType:'asc'
  })
  // TODO: 执行价格区间筛选逻辑
  this.getCourse();
},

// 可选的确定按钮逻辑（如果保留）
onPriceConfirm() {
  this.onPriceSortConfirmed(this.data.priceSortType);
  this.setData({ 
    priceExpanded: false,
    priceActive: true         // 保持价格激活状态
  });
},

onPriceRangeConfirm() {
  // 获取当前选中的价格区间
  const active = this.data.priceRanges.find(item => item.active);
  if (active) {
    this.onPriceRangeConfirmed(active.value);
  }
  this.setData({ 
    priceRangeExpanded: false,
    priceRangeActive: true    // 保持价格区间激活状态
  });
},

// getCourse(){
//   //加载提示
//   wx.showLoading({
//     title: '正在加载中',
//   })
//   // 开启加载状态
//   this.setData({
//     isLoading: true
//   })
//   wx.request({
//     url: this.data.url+'controller/page',
//     method:'GET',
//     data:{
//       pageNum:this.data.pageNum,
//       pageSize:this.data.pageSize
//     },
//     success:resp=>{
//       this.setData({
//         courses:[...this.data.courses,...resp.data.data.list],
//         pages:resp.data.data.pages
//       })
//     },
//     complete:()=>{
//       // 关闭加载状态
//       this.setData({
//         isLoading: false
//       })
//       //取消加载提示
//       wx.hideLoading()
//       //停止下拉刷新
//       wx.stopPullDownRefresh()
//     }
//   })
// },

  getCourse(){
    wx.showLoading({
      title: '正在加载中',
    })
    this.setData({
      isLoading:true
    })
    wx.request({
      url: this.data.url+'course/sort',
      method:'GET',
      data:{
        pageNum:this.data.pageNum,
        pageSize:this.data.pageSize,
        sortType:this.data.priceSortType,
        interval:this.data.interval
      },
      success:(resp)=>{
        this.setData({
          courses:[...this.data.courses,...resp.data.data.list],
          pages:resp.data.data.pages
        })
      },
      complete:()=>{
        wx.stopPullDownRefresh()
        wx.hideLoading()
        this.setData({
          isLoading:false
        })
      }
    })
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    this.setData({
      url:app.globalData.url,
      priceSortType:null,
      interval:null
    })
    this.getCourse()
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {
    this.setData({
      courses:'',
      pageNum:1,
      pageSize:5,
      pages:0,
    })
    this.getCourse()
  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {
    if(this.data.isLoading){
      return
    }
    if(this.data.pageNum>this.data.pages){
      wx.showToast({
        title: '已经到底了..',
        icon:'none'
      })
      return
    }
    this.setData({
      pageNum:this.data.pageNum+1
    })
    this.getCourse()
  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  }
})